package fr.umlv.ig.listener;

import fr.umlv.ig.event.StationEvent;
import fr.umlv.ig.model.MetroModel;
import fr.umlv.ig.model.Station;

/**
 * This interface defines methods for listeners which will be informed
 * by a {@link MetroModel} when a station changed.

 * @author Jenseric Catbagan
 * @author William Choy
 *
 */
public interface StationListener {
	/**
	 * Performed when a station changed occurred.
	 * @param event the event concerned by the changed.
	 */
	public void stationChange(StationEvent event);
	
	/**
	 * Performed when a a data change between a station and is neighbor
	 * @param event the event concerned by the changed.
	 * @param nextStation the nextStation concerned by the changed.
	 */
	public void nextStationChange(StationEvent event, Station nextStation);
	public void nextStationChange(StationEvent stationEvent,
			Station nextStation, Station direction);
}
